# 定义一个函数 并初始化默认参数 *args: 可变参数
def function(val1, val2, val3="汉字", *args):
    print(val1, val2, val3)
    if len(args) > 0:
        print(args)
    return


# 不可变参数方法（基本类型,字符串,元组）
def noVariableParameterMethod(a, b, c):
    a += 1
    b = b + "xxx"
    print(a, b, c)


# 可变参数方法（列表,字典）
def variableParameterMethod(a, b):
    a.append("xxxx")
    b["key01"] = "value"
    print(a, b)


# 不可变
a, b, c = 111, "字符串", (111, "111")
noVariableParameterMethod(a, b, c)
print(a, b, c)
# 可变
c, d = [11, 22, "121", "77"], {'1': 1, 22: "111"}
variableParameterMethod(c, d)
print(c, d)
# 关键字参数调用
function(val2=1, val1=3)
# 可变参数不能和关键中参数一起使用
function(11, 22, 33, 22, 33, 4, 4)
